package utils

import java.util.List
import org.joda.time.LocalTime
import org.xtext.mydsl.scheduler.Dicta
import org.xtext.mydsl.scheduler.Time

class AgregarHorarioMethods {
	
	def agregarHorarios(List<Dicta> espacios, Time horarioInicial){
		val eventos = espacios.groupBy[espacio.name]
		val keys = eventos.keySet
		keys.map[eventos.get(it).calcularHorarios(horarioInicial)].flatten.toList
	}
	
	def  List<EventoConHorario> calcularHorarios(List<Dicta> eventos, Time horario){
		var horarioInicial = new LocalTime(horario.hora, horario.minuto)
		var actividades = eventos.map[block.actividades].flatten.toList
		var auxList = newArrayList
		for (i : 0 ..< actividades.size) {
			var nuevoHorario = horarioInicial.agregarDuracion(actividades.get(i).informacion.duracion)
    		auxList += new EventoConHorario(horarioInicial,nuevoHorario, actividades.get(i))
    		horarioInicial = nuevoHorario
		}
		
		auxList
	}
	
	def agregarDuracion(LocalTime tiempo, int duracion){
		tiempo.plusMinutes(duracion)
	}
}